package br.ufmg.ubicomp.droidguide.eventservice;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.w3c.dom.NodeList;

import br.ufmg.ubicomp.droidguide.common.DroidGuideConfigurationManager;
import br.ufmg.ubicomp.droidguide.common.EntityProperties;
import br.ufmg.ubicomp.droidguide.context.Context;
import br.ufmg.ubicomp.droidguide.utils.RequestUtil;
import br.ufmg.ubicomp.droidguide.utils.XmlParseUtil;

/**
 * interface that provides the list of service methods for server access.
 * @author wpjr
 *
 */
public interface DroidGuideServerRequestService {

	public Map<String, String> executeLogin(String user, String deviceName,
			String connectivity) throws IOException;

	public void executeLogout(String dgKey) throws IOException;

	public void sendUserEvent(String dgKey, String type, String source,
			String data) throws IOException;

	public void subscribeToService(String serviceKey, String dgKey) throws IOException;

	public void unsubscribeToService(String utsKey) throws IOException;

	public void deleteService(String serviceKey) throws IOException;
	
	public List<String> getSubscribedServices(String dgKey) throws IOException;
	
	public List<String> getListOfServices() throws IOException;

	public Context saveUserContext(Context ctx, String dgKey) throws Exception;

	public Context getUserContext(String dgKey) throws Exception;

}
